已知一个长度为16的顺序表L,其元素按关键字有序排列。若采用二分查找法查找一个L中不存在的元素,则关键字的比较次数最多是:
用二分查找从100个有序整数中查找某数,最坏情况下需要比较的次数是:
在散列表中,所谓同义词就是:
在下列查找的方法中,平均查找长度与结点个数无关的查找方法是:
对包含个元素的散列表进行查找,平均查找长度为:
将个元素存入用长度为的数组表示的散列表,则该表的装填因子为:
散列冲突可以被描述为:
将10个元素散列到100000个单元的哈希表中,是否一定产生冲突?
设散列表的地址区间为[0,16],散列函数为。采用线性探测法处理冲突,并将关键字序列{ 26,25,72,38,8,18,59 }依次存储到散列表中。元素59存放在散列表中的地址是:
假定有个关键字互为同义词,若用线性探测法把这个关键字存入散列表中,至少要进行多少次探测?
采用线性探测法解决冲突时所产生的一系列后继散列地址:
将元素序列{18,23,11,20,2,7,27,33,42,15}按顺序插入一个初始为空的、大小为11的散列表中。散列函数为:,采用线性探测法处理冲突。问:当第一次发现有冲突时,散列表的装填因子大约是多少?
给定散列表大小为11,散列函数为。采用平方探测法处理冲突:将关键字序列{ 6,25,39,61 }依次插入到散列表中。那么元素61存放在散列表中的位置是:
给定散列表大小为11,散列函数为。按照线性探测冲突解决策略连续插入散列值相同的4个元素。问:此时该散列表的平均不成功查找次数是多少?
从一个具有个结点的单链表中查找其值等于的结点时,在查找成功的情况下,需平均比较多少个结点?
若用平方探测法解决冲突,则插入新元素时,以下陈述正确的是:
设数字 {4371, 1323, 6173, 4199, 4344, 9679, 1989} 在大小为10的散列表中根据散列函数 得到的下标对应为 {1, 3, 4, 9, 5, 0, 2}。那么继续用散列函数 “表长”实施再散列并用线性探测法解决冲突后,它们的下标变为:
将元素序列{18, 23, 4, 26, 31, 33, 17, 39}按顺序插入一个初始为空的、大小为13的散列表中。散列函数为:,采用线性探测法处理冲突。问:当第一次发现有冲突时,散列表的装填因子大约是多少?
给定散列表大小为11,散列函数为。按照线性探测冲突解决策略连续插入散列值相同的5个元素。问:此时该散列表的平均不成功查找次数是多少?
在有()个元素的升序数组A中查找关键字。查找算法的伪代码如下所示:
k = 0;
while ( k<n 且 A[k]<x ) k = k+3;
if ( k<n 且 A[k]==x ) 查找成功;
else if ( k-1<n 且 A[k-1]==x ) 查找成功;
else if ( k-2<n 且 A[k-2]==x ) 查找成功;
else 查找失败;
本算法与二分查找(折半查找)算法相比,有可能具有更少比较次数的情形是:
度量结果集相关性时,如果准确率很高而召回率很低,则说明:
在评价一个搜索引擎时,下列哪项不是我们关注的要点?
下列几组概念中,那一组不完全跟搜索引擎有关?
下列几组概念中,那一组不完全跟搜索引擎有关?
下列几组概念中,那一组不完全跟搜索引擎有关?
下列二叉树中,可能成为折半查找判定树(不含外部结点)的是:
现有长度为 7、初始为空的散列表HT,散列函数,用线性探测再散列法解决冲突。将关键字 22, 43, 15 依次插入到HT后,查找成功的平均查找长度是:
有两个垃圾邮件检测系统,分别用带有 10000 封正常邮件和 2000 封垃圾邮件的数据集进行测试。系统 A 检测出了 300 封正常邮件和 1600 封垃圾邮件,系统 B 检测出了 315 封正常邮件和 1800 封垃圾邮件。如果我们重点关注的是保证重要邮件的安全,下列哪句陈述是正确的?
设有一组关键字 { 29,01, 13,15,56,20,87,27,69,9,10,74 },散列函数为 ,采用线性探测方法解决冲突。试在 0 到 18 的散列地址空间中对该关键字序列构造散列表,则成功查找的平均查找长度为 __
下列代码的功能是利用散列函数hash将一个元素插入到散列表ht[]中。其中list类型的结点包含element类型的项item、以及一个next指针。如果插入成功,则函数返回1,否则返回0。
int insert( struct element item, list_pointer ht[] )
{
int ret, hash_value;
list_pointer ptr, trail, lead;
ret = 1;
hash_value = hash(item.key);
trail = NULL; lead = ht[hash_value];
for ( ; lead; trail = lead, lead = lead->next) {
if (!strcmp(lead->item.key, item.key)) {
printf("The key is in the table\n");
ret = 0;
}
}
if (ret) {
ptr = (list_pointer)malloc(sizeof(struct list));
3分;
ptr->next = NULL;
if (trail)
3分;
else
4分;
}
return ret;
}